package com.nwcl.basic.service;


import com.nwcl.basic.bo.UserBO;
import com.nwcl.basic.service.bo.YsxRegisterUserBO;

import java.util.List;
import java.util.Map;

/**
 * @author liguiqin
 * @date 2023/5/22
 */
public interface UserService {
    /*
     * @Description: 根据微信unionId查询用户
     * @Author liguiqin
     * @Date 2023/5/26 9:17
     * @param: unionId 微信unionId
     * @return com.nwcl.basic.bo.UserBO
     * @UpdateDate 2023/5/26 9:17
     **/
    UserBO getUserByUnionId(String unionId);

    /*
     * @Description: 根据手机号查询用户
     * @Author liguiqin
     * @Date 2023/5/26 9:17
     * @param: phone 手机号
     * @return com.nwcl.basic.bo.UserBO
     * @UpdateDate 2023/5/26 9:17
     **/
    UserBO findByPhone(String phone);

    /*
     * @Description:  根据id更新用微信unionId,头像,openId,用户名
     * @Author liguiqin
     * @Date 2023/5/26 9:19
     * @param: id 用户id
     * @param: wxUnionId 微信unionId
     * @param: headImgUrl 头像
     * @param: ysxOpenId    openId
     * @param: username 用户名
     * @return void
     * @UpdateDate 2023/5/26 9:19
     **/
    void updateYsxById(Integer id, String wxUnionId, String headImgUrl, String ysxOpenId, String username);

    /*
     * @Description:根据用户id更新微信unionId
     * @Author liguiqin
     * @Date 2023/5/26 9:19
     * @param: id 用户id
     * @param: wxUnionId    微信unionId
     * @return void
     * @UpdateDate 2023/5/26 9:19
     **/
    void updateUnionIdById(Integer id, String wxUnionId);

    /*
     * @Description:根据用户id更新头像
     * @Author liguiqin
     * @Date 2023/5/26 9:20
     * @param: id 用户id
     * @param: headImgUrl  头像
     * @return void
     * @UpdateDate 2023/5/26 9:20
     **/
    void updateHeadImgUrl(Integer id, String headImgUrl);

    /*
     * @Description:根据用户id更新openId
     * @Author liguiqin
     * @Date 2023/5/26 9:20
     * @param: id 用户id
     * @param: openId   openId
     * @return void
     * @UpdateDate 2023/5/26 9:20
     **/
    void updateYsxOpenId(Integer id, String openId);

    /*
     * @Description: 根据用户id更新手机号
     * @Author liguiqin
     * @Date 2023/5/26 9:21
     * @param: id   用户id
     * @param: phone   手机号
     * @return void
     * @UpdateDate 2023/5/26 9:21
     **/
    void updatePhoneById(Integer id, String phone);

    /*
     * @Description:保存悦私享注册用户
     * @Author liguiqin
     * @Date 2023/5/26 9:20
     * @param: regUser
     * @return com.nwcl.basic.bo.UserBO
     * @UpdateDate 2023/5/26 9:20
     **/
    UserBO saveYsxRegisterUserBO(YsxRegisterUserBO regUser);

    /*
     * @Description: 根据用户id查询用户
     * @Author liguiqin
     * @Date 2023/5/29 10:07
     * @param: id
     * @return com.nwcl.basic.bo.UserBO
     * @UpdateDate 2023/5/29 10:07
     **/
    UserBO getById(Integer id);

    Map<Integer, UserBO> mapByIds(List<Integer> userIds);

    void updateUser(UserBO userBO);
}
